package com.tarena.lbs.content.service;

import com.tarena.lbs.base.protocol.exception.BusinessException;
import com.tarena.lbs.base.protocol.model.Result;
import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.content.pojo.param.ArticleContentParam;
import com.tarena.lbs.content.pojo.query.ArticleQuery;
import com.tarena.lbs.content.pojo.vo.ArticleActionPageResultVO;
import com.tarena.lbs.content.pojo.vo.ArticleVO;

import java.util.Set;

public interface ArticleService {
    void addArticle(ArticleContentParam param) throws BusinessException;

    PageResult<ArticleVO>pageList(ArticleQuery query);

    void updateArticle(ArticleContentParam param) throws BusinessException, IllegalAccessException;

    void deleteArticle(String id) throws IllegalAccessException;

    ArticleVO articleDetail(String id) throws IllegalAccessException;

    void handleAction(ArticleContentParam articleContentParam) throws BusinessException, IllegalAccessException;

    Result<ArticleActionPageResultVO>getBehaviorLists(ArticleQuery query)throws BusinessException;

    Set<String>articleabels(ArticleQuery query);

    PageResult<ArticleVO>pageResult(ArticleQuery query);

}
